package com.book.controller;

import com.book.dto.BookPage;
import com.book.entity.Book;
import com.book.service.BookService;
import com.book.utils.ResponseResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * @author yicheng
 */
//所有路径都能匿名访问
@RestController
@RequestMapping("/book")
public class BookController {

    @Autowired
    private BookService bookService;

    @PostMapping("/list")
    public ResponseResult getList(@RequestBody BookPage bookPage){
        return bookService.getList(bookPage);
    }

    //这是用户端获取的所有书籍分类信息。只有查看，故而放在这里，另一个单独的分类管理的类里面我想的是管理员单独的增删改查。
    @GetMapping("/getClasses")
    public ResponseResult getClassList(){
        return bookService.getClassList();
    }

    @GetMapping("/getById")
    public ResponseResult getBookById(@RequestParam int id){
        return bookService.getBookById(id);
    }

    /**
     * 管理员单独查看图书的接口
     */
    @PostMapping("/getBooks")
    public ResponseResult getBooks(@RequestBody BookPage bookPage){
        return bookService.getBooks(bookPage);
    }

    /**
     * 管理员删除书籍
     */
    @GetMapping("/deleteBook")
    public ResponseResult deleteBook(@RequestParam int id){
        return bookService.deleteBook(id);
    }

    /**
     * 管理员新增书籍
     */
    @PostMapping("/addBook")
    public ResponseResult addBook(@RequestBody Book book){
        return bookService.addBook(book);
    }

    /**
     * 管理员根据id获取某本书具体信息
     * @param id
     * @return
     */
    @GetMapping("/getOneBook")
    public ResponseResult getOneBook(@RequestParam int id){
        return bookService.getOneBook(id);
    }

    //获取这本书籍自己的所有分类信息
    @GetMapping("/getBookClassesById")
    public ResponseResult getBookClassesById(@RequestParam int id){
        return bookService.getBookClassesById(id);
    }
}
